#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>

int main(int argc, char* argv[])
{   
    if(argc < 2) {
        printf("filname error\n");
        exit(1);
    }

    int ret = access(argv[1], F_OK);
    if(-1 == ret) {
        int r = mkfifo(argv[1], 0664);
        if(-1 == r) {
            perror("mkfifo error");
            exit(1);
        }

        printf("命名管道 %s 创建成功\n", argv[1]);
    }

    int fd = open(argv[1], O_WRONLY);
    if(-1 == fd) {
        perror("open error");
        exit(1);
    }
    
    char* p = "Hello Kitty!";  // char p[] = "Hello Kitty";
    while(1) {
        sleep(1);
        int len = write(fd, p, strlen(p)+1);
        if(len < 0) {
            perror("write error");
            exit(1);
        }
    }

    close(fd);

    return 0;
}

